上一篇我們介紹SQL Server的Database Mail,這一篇我們來補充管理Database Mail設定檔的方法,以及如何讓SQL Server Agent 利用Database Mail傳送訊息。讓自動化管理作業更加完整。
完成了Database Mail組態設定後,您的SQL Server目前已經處在可以發送郵件的狀態,接下來就是要讓您的SQL Server Agent可以透過Database Mail 來傳送通知或是警示的郵件。
[設定SQL Server Agent使用Database Mail]
您必須透在SQL Server Agent的屬性中,設定使用Database Mail,並挑選好設定檔,這樣才可以讓您的SQL Server Agent正常發送郵件,設定的步驟如下:
1.SQL Server Management Studio中的物件總管下,在[SQL Server Agent]的節點按一下滑鼠右鍵,然後按一下選單中的[屬性]。
2.選取[警示系統]頁面,勾選[啟用郵件設定檔],在郵件系統中挑選Database Mail,並指定要使用的設定檔,再按下[確定]。
PS:SQL Server Agent可以支援兩種郵件系統,SQL Mail與Database Mail都可以使用,如果沒有特殊的考量,建議您使用Database Mail。
3.設定完成後要重新啟動 SQL Server Agent,如果沒有重新啟動無法生效。在[SQL Server Agent]的節點按一下滑鼠右鍵,然後按一下選單中的[重新啟動]。
完成上列步驟後,SQL Server Agent目前已在可以使用Database Mail發送郵件的狀態,接下就看該法作業通知發送給誰。
[設定操作員]
SQL Server Agent的訊息通知對象是操作員,您可以設定在下列狀況發生時發送訊息:
*執行作業成功時
*執行作業失敗時
*執行作業結束時
*特定警示發生時
訊息發送的模式有三種,電子郵件、Net Send和呼叫器,此範例我們以電子郵件作為發送通知的模式。
設定操作員的步驟如下:
1.展[SQL Server Agent]的節點,在中操作員的節點按下滑鼠右鍵,並按下選單中的[新增操作員]。
2.在新增操作員視窗中的一般頁面,輸入名稱與電子郵件名稱,在此[電子郵件名稱]就是操作員的電子郵件信箱地址。預設會勾選[已啟用],必須勾選才在SQL Server Agent的作業將訊息通知到該操作員,設定完成後請按下[確定]。
[設定作業通知對象]
第十二篇我們有介紹如何新增SQL Server Agent的作業,新增作業時我們可以透過設定[通知]頁面,來設定作業完成時要執行的動作,一共有五個動作可以複選,前三項是用來通知操作員通知方式分別為電子郵件、Net Send和呼叫器,第四項作是將通知寫入到Windows應用程式市建紀錄檔,您可以透過事件檢視器閱讀。第五項動作是自動刪除作業,會用在執行一次性作業時。這五種動作都可以在下列三種狀態選擇一種發生時發送訊息,分別為:
*當作業成功時
*當作業失敗時
*作業完成時
如下圖所示,勾選您所以要執行的動作並挑選發送的對象(前一節中所設定的操作員),以及發送時機。
上圖設定會在作業失敗時發送郵件給DBA這名操作員。
現在您已經知道如何在SQL Server Agent中發送訊息通知您了。
另外幫大家補充,在完成的第一次設定Database Mail組態之後,您可以透過[Database Mail 組態精靈]執行管理與修改的動作,例如您需要更新郵件伺服器設定,或建立其他帳戶設定檔,又或是要變更設定檔帳戶資訊等等...
與第十三篇中叫出Database Mail 組態精靈的方式相同的方法叫出精靈,這次您可以選擇其他管理工作,此範例我們選擇[管理Database Mail帳戶和設定檔]。
按[下一步]後就可以選擇[建立新帳戶]、[檢視、變更或刪除現有帳戶]、[建立新設定檔]等等相關動作
。
這樣您就知道如何透過Database Mail 組態精靈管理Database Mail,以及如何讓SQL Server Agent利用Database Mail發送通知。
補充說明:因為SQL Server 的未來版本將移除 SQL Mail。因此,請避免在新開發工作中使用這個功能,並計畫修改目前使用 SQL Mail 的應用程式。若要從 Microsoft SQL Server 傳送郵件,請使用 Database Mail。
我設定作業通知當作業失敗時通知我(已設定操作員email也正確), 但Database Mail沒有發出通知(check 過Exchange Server沒有sqladmin發出的mail), 請問這是什麼原因, 為何DataBaseMail沒有依我設定在作業失敗時發出通知是設定有問題還是因為我設定在封包執行失敗mail通知,我選擇封包成功或失敗都執行下一步驟, 下一步驟的mail是有送出但是舊的資料(因封包失敗沒有update成正確資料), 有高人可以指點迷津, 解我的困惑, 謝謝高人..
我設定了一個排程
步驟一 執行封包更新資料 成功往下一步, 失敗回報失敗
步驟二 發mail 通知更新資料結果
通知 有設定當作業失敗 用電子郵件通知操作員
問題發生了
我的封包執行失敗卻沒有發出mail通知
但卻往下執行 發出mail
請各位高人指點迷津,感激不盡..